#pragma once
class Bit
{
public:

	char and (char a, char b)
	{
		if( a == '1' && b == '1')
			return '1';
		else 
			return 0;
	}
	char or (char a, char b)
	{
		if ( a== '1' || b == '1')
			return '1';
		return '0';
	}
	char xor (char a, char b)
	{
		if ( a== '0' && b=='0' || a== '1' && b== '0')
			return '1';
		else
			return '0';
	}
	char not ( char a)
	{
		if ( a== '0')
			return '1';
		else
			return '0';
	}
	char nand(char a, char b)
	{
		if ( a == '1' && b == '1')
			return '0';
		else 
			return '1';

	}
	char nor(char a, char b)
	{
		if (a == '0' && b == '0')
			return '1';
		else
			return '0';
	}
	void add(char a, char b, char ci, char &sum, char &cu)
	{
		sum = xor (ci, xor( a,b));
		cu = or ( and(a, b), and(ci ,(or(a,b))));
	}

};

